package com.dd.cloud.common.config.obs;

import com.dd.cloud.common.utils.FileUrlPrefixUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;

/**
 * 文件地址前缀处理调用类
 * @author zk
 */
@Configuration
@Slf4j
public class FileUrlPrefix {

    @Autowired
    public PathProperties pathProperties;


    /**
     * 图片地址加上服务器地址
     *
     * @param images 单个或多个图片地址
     * @param index  多张图片,返回指定下标图片地址
     * @return 服务器地址+图片地址/服务器地址+图片地址,...
     */
    public String addImageServer(String images, int index) {
        return new FileUrlPrefixUtils(pathProperties.getImageServer(), pathProperties.getAgentServer()).addImageServer(images, index);
    }

    /**
     * 图片地址加上服务器地址
     *
     * @param images 单个或多个图片地址
     * @return 服务器地址+图片地址/服务器地址+图片地址,...
     */
    public String addImageServer(String images) {
        return new FileUrlPrefixUtils(pathProperties.getImageServer(), pathProperties.getAgentServer()).addImageServer(images, -1);
    }


    /**
     * 图片地址加上服务器地址
     *
     * @param images 单个或多个图片地址
     * @return 服务器地址+图片地址/服务器地址+图片地址,...
     */
    public String[] addImageServer(String[] images) {
        return new FileUrlPrefixUtils(pathProperties.getImageServer(), pathProperties.getAgentServer()).addImageServer(images);
    }

    /**
     * 图片地址去除图片地址
     *
     * @param images 单个或多个图片地址
     * @return 图片地址/图片地址,...
     */
    public String deleteImageServer(String images) {
        return new FileUrlPrefixUtils(pathProperties.getImageServer(), pathProperties.getAgentServer()).deleteImageServer(images);
    }

    /**
     * 图片地址去除图片地址
     *
     * @param images 单个或多个图片地址
     * @return 图片地址/图片地址,...
     */
    public String[] deleteImageServer(String[] images) {
        return new FileUrlPrefixUtils(pathProperties.getImageServer(), pathProperties.getAgentServer()).deleteImageServer(images);
    }

    /**
     * 将对象中带有@Image注解字段
     * 对象中图片地址加上服务器地址
     *
     * @param obj 对象
     */
    public void addImageServer(Object obj) {
        new FileUrlPrefixUtils(pathProperties.getImageServer(), pathProperties.getAgentServer()).addImageServer(obj);
    }

    /**
     * 将对象中带有@Image注解字段
     * 对象中图片地址去除服务器地址
     *
     * @param obj 对象
     */
    public void deleteImageServer(Object obj) {
        new FileUrlPrefixUtils(pathProperties.getImageServer(), pathProperties.getAgentServer()).deleteImageServer(obj);
    }

}
